/**
 * @description 登录验证中间件
 * @author 宫彦胜
 */

const { ErrorModel } = require('../model/ResModel')
const { loginCheckFailInfo } = require('../model/ErrorInfo')

/**
 * api登录验证
 * @param {object} ctx 
 * @param {function} next 
 */
async function loginCheck(ctx, next){
  
  if(ctx.session && ctx.session.userInfo){
    // 代表已经登录
    await next()
    return 
  }
  ctx.body = new ErrorModel(loginCheckFailInfo)
}

/**
 * 页面儿路由的验证
 * @param {object} ctx 
 * @param {function} next 
 */
async function loginRedirect(ctx, next){
  if(ctx.session && ctx.session.userInfo){
    // 代表已经登录
    await next()
    return 
  }
  // 存储一份本来要去的路由地址
  const curUrl = ctx.url
  ctx.redirect('/login?url='+encodeURIComponent(curUrl))
}


module.exports = {
  loginCheck,
  loginRedirect
}


